package com.ruoyi.post.service;

import com.ruoyi.experiment.domain.Experiment;
import com.ruoyi.post.domain.CanDo;
import com.ruoyi.post.domain.JobInformation;
import com.ruoyi.post.model.*;

import java.util.List;

/**
 * 岗位信息Service接口
 *
 * @author ruoyi
 * @date 2024-06-09
 */
public interface IJobInformationService
{
    /**
     * 查询岗位信息
     *
     * @param jobId 岗位信息主键
     * @return 岗位信息
     */
    public JobInformation selectJobInformationByJobId(Long jobId);

    /**
     * 查询岗位信息列表
     *
     * @param jobInformation 岗位信息
     * @return 岗位信息集合
     */
    public List<JobInformation> selectJobInformationList(JobInformation jobInformation);

    /**
     * 新增岗位信息
     *
     * @param jobInformation 岗位信息
     * @return 结果
     */
    public int insertJobInformation(JobInformation jobInformation);

    /**
     * 修改岗位信息
     *
     * @param jobInformation 岗位信息
     * @return 结果
     */
    public int updateJobInformation(JobInformation jobInformation);

    /**
     * 批量删除岗位信息
     *
     * @param jobIds 需要删除的岗位信息主键集合
     * @return 结果
     */
    public int deleteJobInformationByJobIds(Integer[] jobIds);

    /**
     * 删除岗位信息信息
     *
     * @param jobId 岗位信息主键
     * @return 结果
     */
    public int deleteJobInformationByJobId(Integer jobId);

    List<CanDo> selectCanDo(CanDo canDo);

    Integer insertCanDo(CanDo canDo);

    Integer updateCanDo(CanDo canDo);

    Integer deleteCanDo(Long id);
    /** 内部岗  */
    List<BriefPost> getList();

    List<EJob> getExperimentTypes(Integer id);

    List<PExperiment> getExperiments(Experiment experiment);

    Boolean finishExperiment(FinishInfo finishInfo);
    void top(Tops tops);
    void cancelTop(List<Long> ids);

    /**
     * 查找所有分配给内部实验管理员的实验
     * @return
     */
    List<PExperiment> selectManagerExperiment();

    List<BriefPost> selectPostByType(Integer type);

    void setJob(Long experimentId,Integer jobId);
}
